package cn.itcast.nems.order.dao.dataobject;

import cn.itcast.nems.employee.dao.bean.EmployeeGroupBean;
import lombok.Getter;
import lombok.Setter;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 销售订单-头
 * </p>
 *
 * @author liyong
 * @since 2023-08-31
 */
@Getter
@Setter
public class OrderDO {

    private static final long serialVersionUID = 1L;
    private String id;
    /**
     * 订单编号。编码规则：OD+YYMMDD+ ZEROFILL(MURMURHASH(UUID()),0,10) 示例：OD2308281693193454
     */
    private String orderNo;
    /**
     * 订单状态：待支付|PENDING，部分支付|PAYING，完成支付|PAID，已取消|CANCELED
     */
    private String state;
    /**
     * 客户ID：来自于SCRM。主租户唯一。后续不做变更。
     */
    private String customerId;
    /**
     * 客户名称
     */
    private String customerName;
    /**
     * 手机号
     */
    private String customerMobile;
    /**
     * 付款类型，如先付费、后付费，来自于主数据
     */
    private Integer paymentTypeId;

    /**
     * 付款类型，如先付费、后付费，来自于主数据
     */
    private String paymentTypeName;
    /**
     * 应付金额=订单原金额-优惠总额。单位：分。
     */
    private String amountDue;

    /**
     * 已支付金额。单位：分。注：每次支付累计，退费不减！
     */
    private String paidAmount;
    /**
     * 余额
     */
    private String remainingAmount;
    /**
     * 最后一次付款时间，注：每次付款后更新
     */
    private String paymentDatetime;
    /**
     * 创建时间
     */
    private String createdDatetime;
    /**
     * 所属咨询
     */
    private String counselorName;
    private String counselorEmail;
    /**
     * 报名处理人
     */
    private String operatorName;
    private String operatorEmail;
    /**
     * 创建订单的业务线，来自于主数据
     */
    private Integer businessLineId;

    /**
     * 创建订单的业务线，来自于主数据
     */
    private String businessLineName;
    /**
     * 学科：逗号分隔
     */
    private String productSubjectNames;
    private String productSubjectId;
    private Set<String> productSubjectIds;
    /**
     * 校区：逗号分隔
     */
    private String productCampusNames;
    private String productCampusId;
    private Set<String> productCampusIds;
    /**
     * 最后支付时间
     */
    private String paymentStartDate;
    private String paymentEndDate;
    /**
     * 创建时间
     */
    private String createdStartDate;
    private String createdEndDate;

    /**
     * 产品名称-班级名称
     */
    private String productName;

    /**
     * 学籍来源;枚举值：新报名｜NEW、升班｜RENEWAL、转班来｜TRANSFER、休学归来｜SUSPENSION_REENTRY、重读/留级｜REPETITION、出待定班｜DELAY_REENTRY
     */
    private String source;
    private Set<String> sources;
    /**
     * 单据id
     */
    private String JournalId;
    private List<EmployeeGroupBean> employeeGroups;

}
